iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
Software Development

從無到有,LINE著不走系列 第 12

Day 12: 建立 Line Bot 的基本環境

  • 分享至 

  • xImage
  •  

終於到了這一刻了,前十天的基礎如果各位都有做好,那麼接下來的部分就可以很快速的上手拉

步驟 1:建立專案資料夾

接下來,你需要為專案建立一個專屬的資料夾:

mkdir line-bot
cd line-bot

步驟 2:建立虛擬環境

使用 pipenv 建立虛擬環境。這會為你的專案創建一個隔離的環境,確保套件之間不會互相干擾:

pipenv shell

步驟 3:安裝必要的套件

在虛擬環境中,你需要安裝 LINE Bot 的 Python SDK 和 Flask(一個輕量級的Web框架,通常用於處理Bot的Webhook)。輸入以下命令來安裝:

pip install line-bot-sdk
pip install Flask

line-bot-sdk 是LINE提供的官方套件,而 Flask 則讓我們能夠處理 HTTP 請求,這在Bot的Webhook處理過程中是必須的。

步驟 4:撰寫基本的 Flask 應用程式

在專案資料夾內,建立一個名為 app.py 的檔案,並撰寫以下範例程式碼:

from flask import Flask, request, abort

from linebot.v3 import (
    WebhookHandler
)
from linebot.v3.exceptions import (
    InvalidSignatureError
)
from linebot.v3.messaging import (
    Configuration,
    ApiClient,
    MessagingApi,
    ReplyMessageRequest,
    TextMessage
)
from linebot.v3.webhooks import (
    MessageEvent,
    TextMessageContent

app = Flask(__name__)

# 你的 LINE Bot 設定
LINE_CHANNEL_ACCESS_TOKEN = '你的Channel Access Token'
LINE_CHANNEL_SECRET = '你的Channel Secret'

line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)

@app.route("/callback", methods=['POST'])
def callback():
    # 確認請求來自LINE平台
    signature = request.headers['X-Line-Signature']

    # 取得請求內容
    body = request.get_data(as_text=True)

    try:
        handler.handle(body, signature)
    except InvalidSignatureError:
        abort(400)

    return 'OK'

@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=event.message.text))

if __name__ == "__main__":
    app.run()

步驟 5:設定環境變數

為了保護敏感的資料(如LINE_CHANNEL_ACCESS_TOKENLINE_CHANNEL_SECRET),你可以將這些資料儲存在環境變數中。

在專案根目錄建立一個 .env 檔案,並將你的Token與Secret寫入其中:

LINE_CHANNEL_ACCESS_TOKEN=你的Channel Access Token
LINE_CHANNEL_SECRET=你的Channel Secret

接著,在 app.py 中使用 os 模組來讀取環境變數:

import os

line_bot_api = LineBotApi(os.getenv('LINE_CHANNEL_ACCESS_TOKEN'))
handler = WebhookHandler(os.getenv('LINE_CHANNEL_SECRET'))

步驟 6:啟動伺服器

最後,啟動 Flask 伺服器來測試你的LINE Bot:

python app.py

結語

至此,你已經建立了一個基本的LINE Bot開發環境,並能夠使用 pipenv 管理Python虛擬環境。你可以依照需求進一步擴展這個Bot的功能,例如處理不同類型的訊息,或與外部API進行互動。

明天我們就來講講如何取得LINE BOT的API_KEY等等


上一篇
Day11: 論套件管理的重要性
下一篇
Day 13: 我把API key就放在那了,去找吧!!
系列文
從無到有,LINE著不走30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言